package cn.okcode.slowjson.internal;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

/**
 * 定义目标转换类型，抽象类，需要通过匿名类实现作为参数
 *
 * @param <T> 需要转换的目标类型
 */
public abstract class TypeReference<T> {

    private final Type type;

    public TypeReference() {
        Type superClass = getClass().getGenericSuperclass();
        type = ((ParameterizedType) superClass).getActualTypeArguments()[0];
    }

    public Type getType() {
        return type;
    }
}